package com.cyou.qb.face.service;
/**
 * 用户相关信息获取及操作接口
 * @author wangwenlong
 */

import com.cyou.qb.face.entity.AddressInfo;
import com.cyou.qb.face.entity.UserContact;
import com.cyou.qb.face.entity.UserInfo;
import com.cyou.qb.face.exception.QbGetDataException;

/**
 * 用户信息获取及验证接口
 * @author wangwenlong
 *
 */
public interface PassportCheckService extends BaseFaceService{
	
	/**
	 * 根据通行证获取用户昵称
	 * @param uid
	 * @return
	 * @throws QbGetDataException
	 */
	public String getUserNickname(int uid) throws QbGetDataException;
		
	/**
	 * 获取用户的站内等级
	 * @param uid
	 * @param passport
	 * @return
	 * @throws QbGetDataException
	 */
	public int getUserLv(int uid,String passport) throws QbGetDataException;
	
	/**
	 * 判断用户是否关注相关游戏
	 * @param gamecode
	 * @param uid
	 * @return
	 * @throws QbGetDataException
	 */
	public boolean isFocus(String gamecode,int uid) throws QbGetDataException;
	
	/**
	 * 关注活动对应的游戏
	 * @param gamecode
	 * @param uid
	 * @return
	 * @throws QbGetDataException
	 */
	public boolean addGameFocus(String gamecode,int uid) throws QbGetDataException;
	
	/**
	 * 获取用户基本信息的完成度
	 * @param uid
	 * @return
	 * @throws QbGetDataException
	 */
	public int getUserInfoCompletion(int uid) throws QbGetDataException;
	
	/**
	 * 获取用户联系方式完整度
	 * @param uid
	 * @return
	 * @throws QbGetDataException
	 */
	public int getContactCompletion(int uid) throws QbGetDataException;
	
	/**
	 * 获取用户的基本信息
	 * @param uid
	 * @return
	 * @throws QbGetDataException
	 */
	public UserInfo getUserInfo(int uid) throws QbGetDataException;
	
	/**
	 * 获取用户地址信息
	 * @param uid
	 * @param passport
	 * @return
	 * @throws QbGetDataException
	 */
	public AddressInfo getAddressInfo(int uid,String passport) throws QbGetDataException;
	
	/**
	 * 获取用户的联系方式
	 * @param uid
	 * @param passport
	 * @return
	 * @throws QbGetDataException
	 */
	public UserContact getContact(int uid,String passport) throws QbGetDataException;
	/**
	 * 为玩家增加经验信息
	 * @param experienceValue
	 * @return 增加是否成功
	 * @throws QbGetDataException 
	 */
	boolean plusExperience(int uid, String memo, int experienceValue,
			String passport) throws QbGetDataException;
	/**
	 * 完善用户基本信息
	 * @param userInfo
	 * @return
	 */
	public boolean updateUserInfo(UserInfo userInfo,int uid,String passport) throws QbGetDataException;
	
	/**
	 * 完善用户联系方式
	 * @param cantact
	 * @return
	 */
	public boolean updateContact(int uid,UserContact contact,String passport) throws QbGetDataException;
	
	/**
	 * 完善用户地址信息
	 * @param address
	 * @return
	 */
	public boolean updateAddress(int uid,AddressInfo address,String passport) throws QbGetDataException;

}
